home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 26 / AACD 26.iso / AACD / Programming / AllPlaton / Unsorted / Daemon.AMOS / Daemon.amosSourceCode
Encoding:
AMOS Source Code  |  1996-01-18  |  15.0 KB  |  400 lines

  1. Set Buffer 100
  2. FIL$=Command Line$
  3. If FIL$="" Then FIL$="dh1:DF�/MicroDot/Data/Daemon.puf"
  4. D$= Extension_8_03E0(Dir$)
  5. Screen Open 0,640,256,4,$8000
  6. Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 
  7. Palette 0,$FFF,$8F8,$88F
  8. R$=Chr$(13)+Chr$(10)
  9. 'MAIL$="Chris@Sixpack.pfalz.de (Phoenix)"
  10. 'MEID$="@p22.sixpack.pfalz.de" 
  11. MAILABS$="platon@w-specht.rhein-ruhr.de (Phoenix)"
  12. MEID$="chrizzly@platon.rhein-ruhr.de"
  13. Dim ST$(10,40),ST(40),KEYS$(10,20),KEYS(10,2)
  14. For ST=0 To 10
  15.   ST(ST)=0
  16.   Do 
  17.     B$=""
  18.     Do 
  19.       Read A$
  20.       Exit If A$=""
  21.       B$=B$+A$+R$
  22.     Loop 
  23.     ISOCON[B$]
  24.     ST$(ST,ST(ST))=B$
  25.     Exit If B$=""
  26.     Inc ST(ST)
  27.   Loop 
  28.   Exit If ST(ST)=0
  29. Next 
  30. Restore KEYS
  31. For KE=0 To 10
  32.   Read A$
  33.   Exit If A$=""
  34.   KEYS(KE,0)=0
  35.   Do 
  36.     P=Instr(A$," ")
  37.     Exit If P=0
  38.     B$=Left$(A$,P-1) : A$=Mid$(A$,P+1)
  39.     ISOCON[B$]
  40.     KEYS$(KE,KEYS(KE,0))=B$
  41.     Inc KEYS(KE,0)
  42.   Loop 
  43.   ISOCON[A$]
  44.   KEYS$(KE,KEYS(KE,0))=A$
  45.   Inc KEYS(KE,0)
  46.   Read KEYS(KE,1),KEYS(KE,2)
  47. Next 
  48. Open Out 1,FIL$
  49.  Extension_8_063A D$
  50. Append 2,"DH1:DF�/Term/Logs/Daemon.log"
  51. Print #2,"Mailer Daemon started on "; Extension_8_0F0A( Extension_8_07CE );" "; Extension_8_0F1A( Extension_8_07E0 );".";Chr$(10);
  52. MAILS=0
  53. Do 
  54.   F$= Extension_8_064C 
  55.   Exit If F$=""
  56.   If Extension_8_06A2 >0
  57.     Pen 3 : Print "File: ";F$;": ";
  58.      Extension_8_0456 Extension_8_03EC(D$)+F$,9
  59.     ST=Start(9) : LE=Length(9) : ED=ST+LE
  60.     If Hunt(ST To Min(ED,ST+10000),"LEN:")
  61.       Pen 2 : Print "Working..."
  62.       Repeat 
  63.         DAEMON=0 : MAIL$=""
  64.         Do 
  65.           HE$=Peek$(ST,80,":")
  66.           Add ST,Len(HE$)+1
  67.           While Peek(ST)=9 or Peek(ST)=32 : Inc ST : Wend 
  68.           DA$=Peek$(ST,400,Chr$(13)) : Add ST,Len(DA$)+2
  69.           If HE$="EMP" : Gosub CHECKBOARD : End If 
  70.           If HE$="LEN" : MLEN=Val(DA$) : End If 
  71.           Gosub CHECKHEADER
  72.           Exit If Peek(ST)=13 or Peek(ST)=10
  73.         Loop 
  74.         If DAEMON
  75.           Gosub MAKEMAIL
  76. '        Else  
  77. '          Print #2,"Ignored.";Chr$(10); 
  78.         End If 
  79.         Add ST,MLEN+2
  80.       Until ST=>ED-2
  81.     Else 
  82.       Pen 1 : Print "Not a point buffer"
  83.     End If 
  84.   End If 
  85. Loop 
  86. Print #2,"Mailer Daemon finished. Mails written:"+Str$(MAILS);Chr$(10);
  87. Print #2,"-----------------------------------------------------------------------------";Chr$(10);
  88. Close 1
  89. Close 2
  90. Erase 9
  91. Wait 25
  92. Screen Close 0
  93. End 
  94. CHECKBOARD:
  95.   If DA$="/LOKAL/PICKET-FENCES" Then DAEMON=1
  96.   If DA$="/LOKAL/PC-PROBS" Then DAEMON=1
  97. '  If Instr(DA$,"LOKAL") Then DAEMON=1   
  98. Return 
  99. CHECKHEADER:
  100. '  If HE$="EMP" Then PUHEAD[HE$,DA$] 
  101.   If HE$="MAILER" Then MAILER$=DA$
  102.   If HE$="EMP" Then PUHEAD[HE$,"/LOKAL/PICKET-FENCES"]
  103.   If HE$="ABS" Then PUHEAD[HE$,MAILABS$] : AB$=DA$
  104.   If HE$="MID"
  105.     PUHEAD["MAILER","Chris' Daemon V0.78"]
  106.     PUHEAD["BEZ",DA$]
  107.     ID$=Mid$(Hex$( Extension_8_07E0 +( Extension_8_07CE )*256,8),2)+MEID$
  108.     PUHEAD["MID",ID$]
  109.     PUHEAD["ROT",""]
  110.   End If 
  111.   If HE$="BET"
  112.     BET$=DA$
  113.     If Upper$(Left$(DA$,2))<>"RE" : DA$="Re: "+DA$ : End If 
  114.     PUHEAD[HE$,DA$]
  115.     D= Extension_8_07CE : T= Extension_8_07E0 
  116.     DATE$= Extension_8_0EB8( Extension_8_07F2(D),4)+ Extension_8_0EB8( Extension_8_0800(D),2)+ Extension_8_0EB8( Extension_8_0810(D),2)+( Extension_8_0F1A(T)-":")+"S+2"
  117.     PUHEAD["EDA",DATE$]
  118.   End If 
  119. Return 
  120. MAKEMAIL:
  121.   AD=ST+2 : OPI=1 : MO=-1 : KEY=-1
  122.   If Instr(Upper$(MAILER$),"CROSS") Then OPI=0 : MO=2
  123.   US$=Lower$(Left$(AB$,Instr(AB$,"@")-1))
  124.   US$=Upper$(Left$(US$,1))+Mid$(US$,2)
  125.   If OPI
  126.     M$="Hi Kumpel! Bist Du nicht der Rechner von "+US$+"?"+R$
  127.     M$=M$+"Ich wollte nur etwas zu Deiner letzten Mail erg"+Chr$($84)+"nzen:"+R$+R$
  128.   Else 
  129.     M$="Hallo alter Schrottrechner von "+US$+"!"+R$
  130.     M$=M$+"Deiner letzten Mail kann ich absolut nicht zustimmen!"+R$+R$
  131.   End If 
  132.   QST=1 : LIN=0 : QLIN=0
  133.   Repeat 
  134.     QUOTE=1
  135.     T$=Peek$(AD,160,Chr$(13))
  136.     Add AD,Len(T$)+2
  137.     If T$="" Then QUOTE=0
  138.     If Left$(T$,2)="--" and LIN>5 Then Exit 
  139.     If Left$(T$,2)="##" Then QUOTE=0
  140.     If Len(T$)-Len(T$-">")>1 Then QUOTE=0
  141.     If Len(T$)-Len(T$-"   "-"_"-"/"-">"-"="-"-"-"|"-"\")>4 Then QUOTE=0
  142.     If QST and QUOTE=0 and LIN>4 Then QST=0
  143.     If QST Then QUOTE=0
  144.     If QUOTE
  145.       A$=Lower$(T$)
  146.       If KEY=-1 and Len(T$)-Len(T$-">")=0
  147.         For KE=0 To 10
  148.           Exit If KEYS(KE,0)=0
  149.           For A=0 To KEYS(KE,0)-1
  150.             If Instr(A$,KEYS$(KE,A))
  151.               If KEYS(KE,1)<1000
  152.                 KEY=KE : PO=KEYS(KE,1) : NE=KEYS(KE,2) : KII$=KEYS$(KE,A)
  153.               Else 
  154.                 If KEYS(KE,1)=1000
  155.                   Inc MO
  156.                 Else 
  157.                   Dec MO
  158.                 End If 
  159.               End If 
  160.             End If 
  161.           Next 
  162.         Next 
  163.       End If 
  164.       If QLIN<8
  165.         M$=M$+">"+T$+R$ : Inc QLIN
  166.       End If 
  167.     End If 
  168.     Inc LIN
  169.   Until AD=>ST+MLEN
  170.   M$=M$
  171.   If KEY=-1
  172.     T$=ST$(OPI,Rnd(ST(OPI)-1))
  173.   Else 
  174.     If MO>0
  175.       T$=ST$(PO,Rnd(ST(PO)-1))
  176.     Else 
  177.       T$=ST$(NE,Rnd(ST(NE)-1))
  178.     End If 
  179.   End If 
  180.   M$=M$+R$+T$+R$+"Phoenix - The Next Generation"+R$
  181.   LM=Len(M$)
  182.   PUHEAD["LEN",Mid$(Str$(LM),2)]
  183.   If KEY<>-1
  184.     A$=Left$(BET$,30)
  185.     Pen 1 : Print #2,"Mail: ";A$+Space$(31-Len(A$));
  186.     Print #1,MAIL$;R$;M$; : Print #2,"LEN: "; Extension_8_0EC8(LM,5);" Key: ";KII$;"!";Chr$(10);
  187.     Inc MAILS
  188. '  Else  
  189. '    Print #2,"No keyword!";Chr$(10);
  190.   End If 
  191. Return 
  192. ' 0  
  193. Data "Sach mal spinnst Du???",""
  194. Data "Das ist jetzt aber ï¿½berhaupt kein Argument!",""
  195. Data "Jaja... bleib ruhig mit Deinem PC in der Steinzeit!",""
  196. Data "Kapier' es doch endlich! Amiga ist einfach besser!",""
  197. Data "Amiga - War gut, ist gut, bleibt gut!",""
  198. Data "Amiga - Nicht immer, aber immer ï¿½fter.",""
  199. Data "Amiga - Simply the best!",""
  200. Data "Amiga - Eine Perle der Natur.",""
  201. Data "Amiga - Haste einen, biste was.",""
  202. Data "Amiga - Computer for creative people.",""
  203. Data "Amiga - Was sonst?",""
  204. Data "Amiga - The other side of life!",""
  205. Data "Amiga - The others just watch!",""
  206. Data "Amiga - Just do it!",""
  207. Data "Amiga - Ein Rechner r�umt auf."
  208. Data "Amiga - Jetzt drei mal schneller!",""
  209. Data "Amiga - More fun!",""
  210. Data "Amiga - There's no alternative.",""
  211. Data "Amiga - In Tirannos!",""
  212. Data "Amiga - Back for future!",""
  213. Data "Phoenix - Ein Amiga k�mpft gegen das B�se.",""
  214. Data "Warum PC wenns Amiga gibt?",""
  215. Data "Gib PC keine Chance!",""
  216. Data "Der ganze Tag ist schon versaut, wenn man sich einen PC anschaut!",""
  217. Data "Lieber Multitasking, Multimedia und Freude, als Multischrott,"
  218. Data "Multiprobleme und Depressionen.",""
  219. Data "Wenn Du das glaubst, denkst Du noch seeehr mittelalterlich.",""
  220. Data "Ach geh doch auf Dein WC und schei� es voll.",""
  221. Data "Das Wasser ist tr�b, die Luft ist rein, der PC mu� wohl ertrunken sein!",""
  222. Data "Liegt die Dose tot im Keller, war d'Amiga wieder schneller!",""
  223. Data "Die H�lle beginnt beim PC.",""
  224. Data "PC - das Werk des Teufels!",""
  225. Data "...und Gott schuf den Amiga...",""
  226. Data ""
  227. ' 1
  228. Data "Genau!",""
  229. Data "Jepp! Sach ich auch immer ;-)",""
  230. Data "Wir verstehen uns :)",""
  231. Data "Wenn alle Menschen nur so klug w�ren wie Du, dann w�rde es wohl"
  232. Data "keinen PC geben.",""
  233. Data "Ich sach ja: Der PC hat sich weiterentwickelt - zur Spielekonsole!",""
  234. Data "Ich glaube wir sollten mal ne neue Partei gr�nden. ;-)",""
  235. Data "Tja. Aber die PC-Prolis werden es wohl NIE verstehen!",""
  236. Data "Klaro. Der Amiga ist eben einfach besser.",""
  237. Data "Wer den PC kennt, wei� was ich meide.",""
  238. Data "Die H�lle beginnt beim PC.",""
  239. Data ""
  240. ' 2
  241. Data "Hindenburg - Titanic - Challenger - MS-DOS - Windows!",""
  242. Data "F�r die einen ist es Windows, f�r die anderen die l�ngste"
  243. Data "Batchdatei der Welt!",""
  244. Data "MS-DOS: Mannigfaltiger Schmerz Durch Offensichtliche Schikane.",""
  245. Data "MS-DOS: Manche Schaffens Dank Optimaler Schulung.",""
  246. Data "MS-DOS: Morgendlicher Schreck Der Ordentlichen Sekret�rin.",""
  247. Data "MS-DOS: Mehr Spa� Dank Origineller Spielregeln.",""
  248. Data "Spiel doch weiter Solitaire mit deinem Windoof!",""
  249. Data "Bist du beim Warten auf Windows noch nicht in den 7-j�hrigen"
  250. Data "Schlaf verfallen, weil deine AT-BUS Platte so rattert?",""
  251. Data "Was entdeckte die Frau von Bill Gates in der Hochzeitsnacht?"
  252. Data R$+R$+R$+R$+R$+"Die wahre Bedeutung des Wortes MicroSoft!",""
  253. Data "Wie wechselt Bill Gates eine defekte Gl�hbirne?"
  254. Data R$+R$+R$+R$+R$+"Gar nicht. Er erkl�rt die Dunkelheit zum Standard.",""
  255. Data "Microsoft: Die Lieblingsfirma von Masochisten.",""
  256. Data "Windows Error 001: Windows loaded. System in danger.",""
  257. Data "Windows Error 002: No error... yet.",""
  258. Data "Windows Error 003: Dynamic linking error. Your mistake is now in"
  259. Data "                   every file.",""
  260. Data "Windows Error 004: Erronious error. Nothing wrong.",""
  261. Data "Windows Error 005: Multitasking attempted. System confused.",""
  262. Data "Windows Error 007: System price error. Inadequate money spent.",""
  263. Data "Windows Error 008: Broken window. Watch for glass fragments.",""
  264. Data "Windows Error 009: Horrible bug encountered. God knows what has happened.",""
  265. Data "Windows Error 00B: Inadequate disk space. Need 50 meg minimum.",""
  266. Data "Windows Error 00C: Memory hog error. More ram needed. More! More!",""
  267. Data "Windows Error 00D: Window closed. Do not look out.",""
  268. Data "Windows Error 00E: Window open, do not look in.",""
  269. Data "Windows Error 00F: Unexplained error. Please tell us how it happened.",""
  270. Data "Windows Error 010: Reserved for future mistakes.",""
  271. Data "Windows Error 014: Non-existant error. This cannot really be happening.",""
  272. Data "Windows Error 015: Unable to exit windows. Try the door.",""
  273. Data "Windows Error 017: Keyboard locked. Press any key to continue.",""
  274. Data "Windows Error 019: User error. It's not our fault. It's not! It's not!",""
  275. Data "Windows Error 01A: Operating system overwritten. Terribly sorry.",""
  276. Data "Windows Error 0FF: Could not write onto CD-ROM, please contact your"
  277. Data "                   local dealer.",""
  278. Data "'640 KB sollten f�r alle reichen' - Bill Gates.",""
  279. Data "'Es gibt keine bedeutenden Fehler in unserer Software, die eine"
  280. Data "nennenswerte Anzahl von Benutzern behoben haben m�chte.' - Bill Gates.",""
  281. Data "Was bedeutet MicroSoft?"
  282. Data R$+R$+R$+R$+R$+"Die Entwickler haben Rinderwahn.",""
  283. Data "    **** MICROSOFT WINDOWS V3.1 ****"
  284. Data "64 MB RAM SYSTEM  38911 SYSTEM BYTES FREE"
  285. Data "READY.",""
  286. Data ""
  287. ' 3
  288. Data "Ach D�monen sind gar nicht so schlecht wie ihr immer behauptet! :)",""
  289. Data "Gebt D�monen eine Chance!",""
  290. Data "Ohne D�monen w�re das Leben nur halb so sch�n ;-)",""
  291. Data "Ich wei� ja, da� die ganzen PC-D�monen nur Schei�e bauen,"
  292. Data "aber die Amiga-D�monen sind doch ganz nett, oder? ;-)",""
  293. Data "D�monen haben auch eine Existenzberechtigung!",""
  294. Data "Mann seid ihr rassistisch!",""
  295. Data "D�monen sind auch nur Menschen!",""
  296. Data ""
  297. ' 4
  298. Data "Jepp! D�monen sind cool!",""
  299. Data "D�monen in den Bundestag!",""
  300. Data "Amiga-D�monen rulen!",""
  301. Data "Ein kleines Programm, das viel Freude macht!",""
  302. Data "<R�lps>. Sorry ;-)",""
  303. Data "Phoenix - Ein vorpubert�res kleines Monster ;-)))",""
  304. Data ""
  305. ' 5
  306. Data "SCSI wurde f�r intelligente Computer erfunden."
  307. Data "Das ist auch der Grund, warum der PC sowas nicht hat!",""
  308. Data "Wir hatten am Amiga schon SCSI, als die PC-Proleten noch mit"
  309. Data "ihrem AT-Bus-Schrott um den Weihnachtsbaum gerannt sind!",""
  310. Data "Kann man auf dem PC eigentlich Paritionen gr��er als 32 MB"
  311. Data "einrichten? ;-)",""
  312. Data "Ist es nicht irgendwie nervig, wenn man nur 0,5MB/s bei"
  313. Data "AT-Bus Platten hat?",""
  314. Data ""
  315. ' 6
  316. Data "Lieber 4 echte 8-Bit Kan�le als einen billigen 16-Bit Kanal!",""
  317. Data "4 Kan�le reichen locker f�r einen Multimedia-Computer, wer"
  318. Data "mehr will, kann sichs ja mischen lassen!",""
  319. Data "SoundBlaster - ein Standard, der dem Amiga weit hinterher hinkt!",""
  320. Data "Was man heutzutage f�r M�ll-ScreamTracker Tunes h�ren kann...",""
  321. Data "Da kommt einem doch das Kotzen! :-{****. Nene. Amiga rulez!",""
  322. Data "Lieber sch�n komponierte 4 Kan�le als grauenhafte 16 Channel!",""
  323. Data ""
  324. ' 7
  325. Data "Bitte, bitte Leute, schreibt Standard mit D! ;-)",""
  326. Data "Man sollte Dir mal nen Duden schenken! ;-)",""
  327. Data "Ein Modem mit Rechtschreibpr�fung, das w�re doch das richtige f�r Dich!",""
  328. Data "Ich hoffe man wird Deinetwegen mal ne Rechtschreibreform durchf�hren.",""
  329. Data ""
  330. ' 8
  331. Data "'Herr Doktor, der Patient mit dem 'Intel Inside'-T-Shirt, woran"
  332. Data " ist der eigentlich gestorben?'"
  333. Data "'Der Herzschrittmacher ist abgest�rzt. Als er die 65.5 Lebensjahre"
  334. Data " ï¿½berschritten hatte, zuckte er zusammen, sagte was von 'Schutz-"
  335. Data " verletzung' und 'Fehler beim Lesen auf Laufwerk A, Abbrechen,"
  336. Data " Wiederholen, ï¿½bergehen?' und das war's dann...",""
  337. Data "Was hat ein Intel Pentium mit einer Blondine gemeinsam?"+R$+R$+R$+R$+R$
  338. Data "Sie k�nnen beide nicht rechnen!",""
  339. Data "F: Wieviele Pentium-Designer braucht man, um eine Gl�hbirne zu wechseln?"
  340. Data R$+R$+R$+R$+R$+"A: 1.99904424358435, aber das ist genau genug f�r eine nicht-"
  341. Data "   technische Anwendung.",""
  342. Data "F: Was ist eine andere Bezeichnung f�r den 'Intel inside'"
  343. Data "   Aufkleber, der auf Pentiums geklebt wird?"
  344. Data R$+R$+R$+R$+R$+"A: Warnschild oder Wahrheit in der Werbung.",""
  345. Data "F: Wie nennt man eine Folge von FDIV-Anweisungen auf einem Pentium?"
  346. Data R$+R$+R$+R$+R$+"A: Sukzessive Approximation.",""
  347. Data "F: Was f�r einen Algorithmus benutzte Intel in der Flie�kommaaritmetik"
  348. Data "   des Pentiums?"
  349. Data R$+R$+R$+R$+R$+"A: 'Das Leben ist wie eine Schachtel Pralinen.' (F.Gump)",""
  350. Data "F: Wieso hat Intel den Pentium nicht 586 genannt?"
  351. Data R$+R$+R$+R$+R$+"A: Als sie auf dem ersten Pentium 486 und 100 addieren kam"
  352. Data "   585.9999834543 raus.",""
  353. Data "F: Wie sieht die Sinus-Funktion bei einem Pentium aus?"
  354. Data "A: Nat�rlich wie die Tangenz-Funktion, der kleine Unterschied ist vertretbar.",""
  355. Data "Intel Inside - wir haben das Problem eingekreist.",""
  356. Data "Intel investiert in die Zukunft - der Hitech-Toaster.",""
  357. Data "Warum ist bei der Werbung von Intel soviel Licht im Rechner?"
  358. Data R$+R$+R$+R$+R$+"Is doch klar! Das ist der Pentium, der gl�ht doch so hell!",""
  359. Data "Intel abseits!",""
  360. Data ""
  361. ' 9  
  362. Data "Du bist pervers!",""
  363. Data "Sag das mal deiner Mutter!",""
  364. Data "Kannst du uns nicht mit deinen vorpubert�ren Problemen in Ruhe lassen?",""
  365. Data "Wozu gibts eigentlich das Erotik-Brett?",""
  366. Data "Ferkel!",""
  367. Data ""
  368. ' END
  369. Data ""
  370. KEYS:
  371. Data "window windoof microsoft ms-dos winzigweich kleinweich bill gates",2,2
  372. Data "daemon d�mon phoenix",4,3
  373. Data "scsi at-bus bus",5,5
  374. Data "sound kanal kan�le",6,6
  375. Data "standart",7,7
  376. Data "intel pentium",8,8
  377. Data "pee cee pc ibm clones",1,1
  378. Data "sex pervers ficken bumsen blasen anal",9,9
  379. Data "commodore amiga a500 a1200 a2000 a3000 a4000 cd32",0,0
  380. Data "gut super geil klug recht spitze :-) ;-) :) ;)",1000,1000
  381. Data "bescheuert schlecht schei�e scheisse idiot trottel dumm schimpf schrott sterben storben pleite schlimm :-( :(",1001,1001
  382. Data ""
  383. Procedure PUHEAD[HEAD$,DAT$]
  384.   Shared MAIL$
  385.   MAIL$=MAIL$+HEAD$+":"+Tab$+DAT$+Chr$(13)+Chr$(10)
  386. End Proc
  387. Procedure ISOCON[T$]
  388.   X=Free
  389.   For A=1 To Len(T$)
  390.     AD=Varptr(T$)+A-1
  391.     P=Peek(AD)
  392.     If P=Asc("�") Then Poke AD,$84
  393.     If P=Asc("�") Then Poke AD,$8E
  394.     If P=Asc("�") Then Poke AD,$94
  395.     If P=Asc("�") Then Poke AD,$99
  396.     If P=Asc("�") Then Poke AD,$81
  397.     If P=Asc("�") Then Poke AD,$9A
  398.     If P=Asc("�") Then Poke AD,$E1
  399.   Next 
  400. End Proc